package com.yf.stat.modules.exam.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yf.base.api.api.dto.PagingReqDTO;
import com.yf.stat.modules.exam.dto.StatErrorQuDTO;
import com.yf.stat.modules.exam.dto.StatExamTotalDTO;
import com.yf.stat.modules.exam.dto.StatExamUserDTO;
import com.yf.stat.modules.exam.dto.StatStudentExamAnalyseDTO;
import com.yf.stat.modules.exam.dto.request.StatAnalyseReqDTO;
import com.yf.stat.modules.exam.dto.request.StatExamReqDTO;
import com.yf.stat.modules.exam.dto.request.StatQuReqDTO;

import java.util.List;

/**
* <p>
* 考试总体统计业务类
* </p>
*
* @author 聪明笨狗
* @since 2020-09-11 11:10
*/
public interface StatExamService {

    /**
     * 查找总体统计
     * @param examId
     * @return
     */
    StatExamTotalDTO findOverview(String examId);

    /**
     * 查找用户列表
     * @param reqDTO
     * @return
     */
    IPage<StatExamUserDTO> userPaging(PagingReqDTO<StatExamReqDTO> reqDTO);


    /**
     * 查找部门树结构的统计信息
     * @param examId
     * @return
     */
    List<StatExamTotalDTO> listStatTree(String examId);

    /**
     * 查找展开的统计树，用于导出
     * @param examId
     * @return
     */
    List<StatExamTotalDTO> listExpandTree(String examId);

    /**
     * 查找错题统计
     * @param reqDTO
     * @return
     */
    IPage<StatErrorQuDTO> errorQuPaging(PagingReqDTO<StatQuReqDTO> reqDTO);

    /**
     * 检索全部的用户考试试题信息
     * @param statStudentExamAnalyseDTO
     */
    StatAnalyseReqDTO studentAI(StatStudentExamAnalyseDTO statStudentExamAnalyseDTO);


    /**
     * 班级成绩分析
     * @param statStudentExamAnalyseDTO
     * @return
     */
    StatAnalyseReqDTO classAI(StatStudentExamAnalyseDTO statStudentExamAnalyseDTO);
}
